package com.wb.core08_常用类.String;

import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.Arrays;

/**
 * @author 黄衡熙
 * @version 1.0
 */
public class Test04_字符集 {
    public static void main(String[] args) throws UnsupportedEncodingException {
        //当前系统所使用的字符集
        System.out.println("当前系统的字符集为:" + System.getProperty("file.encoding"));
        //JVM默认的字符集，几当前系统的字符集
        System.out.println("JVM默认的字符集:" + Charset.defaultCharset());
        System.out.println("==============================================================");
        //编码
        //通过getBytes(Charset charset)方法对指定字符串进行编码
        String s = "你好";
        byte[] bytes = s.getBytes("GBK");
        System.out.println(Arrays.toString(bytes));
        byte[] bytes2 = s.getBytes("UTF-8");
        System.out.println(Arrays.toString(bytes2));
        System.out.println("==============================================================");
        //解码
        //通过 new String(byte[] bytes,Charset charset)` 构造方法将一个指定字符集的字节数组转换成字符串
        //Charset 参数可以省略, 省略后表示使用系统默认的字符集进行解码
        //使用GBK字符集进行解码
        byte[] bytes1 = {-60, -29, -70, -61};
        String s1 = new String(bytes1, "GBK");
        System.out.println(s1);
        // 使用UTF-8的字符集进行解码
        byte[] bytes3 = {-28, -67, -96, -27, -91, -67};
        String s2 = new String(bytes3, "UTF-8");
        System.out.println(s2);
        // 使用系统默认的字符集进行解码
        String s3 = new String(bytes3);
        System.out.println(s3);

        System.out.println("==================================");

        //乱码问题

    }
}
